package com.janko.springbootbase.a_projectExample.no_transaction;

/**
 * @Author nyk
 * @Date 2021/7/1 11:34
 * @Version 1.0
 * @Desc
 */
public class t0_all {
    /**
     * 总结一共有几种失效场景：
     * 1、不是Spring管理的Bean 常见：没有添加注解@Service
     * 2、被注解是修饰的方法不是public的
     * 3、异常：在对事务修饰的方法中、添加了try catch捕获，然后不能抛出来
     * 4、异常：对异常类捕获、但是抛出来的不是RuntimeException 异常
     * 5、匿名内部类调用了该方法： 原因是，@Transaction本身是被动态代理来调用，当去调用使用的时候，
     *          原理其实是用一个新的类去调用，如果是内部调用的话，就是等于说是this.MethodA()。等于是没有使用事务。
     * 6、事务传播机制设置了异常、设置的是NOT_REQUIRED等之类的
     * 7、MySQL数据库对应的表引擎是Myisam引擎、而不是Innodb
     */
}
